// ++++++++++++++++++++++++++++++++++++++++
// 《零基础Go语言算法实战》源码
// ++++++++++++++++++++++++++++++++++++++++
// Author:廖显东（ShirDon）
// Blog:https://www.shirdon.com/
// Gitee:https://gitee.com/shirdonl/goAlgorithms.git
// Buy link :https://item.jd.com/14101229.html
// ++++++++++++++++++++++++++++++++++++++++

package main

import "fmt"

// 在 slice 上，这将对 slice 的每个元素执行一个函数
func ForFunc[T any](s []T, f func(ele T, i int, s []T)) {
	for k, v := range s {
		f(v, k, s)
	}
}

// T 是类型参数，它的作用类似于类型
func print[T any](v T) {
	fmt.Println(v)
}

func MapKeys[K comparable, V any](m map[K]V) []K {
	// 创建具有地图长度的 K 类型切片
	key := make([]K, len(m))
	i := 0
	for k, _ := range m {
		key[i] = k
		i++
	}
	return key
}
